package com.eva.framework.rbac.model;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Set;

@Data
@Schema(description = "RBAC登录用户信息")
public class RbacUserInfo implements Serializable {

    @Schema(description = "主键")
    private Integer id;

    @Schema(description = "用户名")
    private String username;

    @Schema(description = "真实姓名")
    private String realName;

    @Schema(description = "头像")
    private String avatar;

    @Schema(description = "生日")
    private Date birthday;

    @Schema(description = "性别")
    private String gender;

    @Schema(description = "角色标识符集")
    private Set<String> roles;

    @Schema(description = "权限标识符集")
    private Set<String> permissions;

    @Schema(description = "是否为超级管理员")
    private Boolean isSuperAdmin;

    @JsonIgnore
    @Schema(description = "菜单权限主键集")
    private Set<Integer> menuPermissionIds;

    @JsonIgnore
    @Schema(description = "功能权限主键集")
    private Set<Integer> menuFuncPermissionIds;

    @JsonIgnore
    @Schema(description = "系统配置权限主键集")
    private Set<Integer> systemConfigPermissionIds;

    @JsonIgnore
    @Schema(description = "盐值")
    private String salt;

    @JsonIgnore
    @Schema(description = "密码")
    private String password;

    @JsonIgnore
    @Schema(description = "会话ID")
    private String token;

}
